<?php
/**
 * 发送短信处理类
 * @author 刘阳(alexdany@126.com)
 * @date 2014年5月7日
 */

class SmsLib{
	// 接口地址
	private $url = 'http://223.68.139.178:9010/YidaInterface/SendSms.do';
	// 最后群发号码数量
	private $maxCnt = 199;
	// 短信内容最大长度
	private $charCnt = 70;
	// 编码
	private $encoding = 'UTF-8';
	// 用户名
	private $username = 'jshkgyl';
	// 密码
	private $pwd = '111111';
	// 企业代码
	private $scode = '';
	// 签名
	private $sign = '【诚信购】';// 后面要判断运营商，联通、电信要使用正式签名
	
	
	/**
	 * 构造函数
	 * @author 刘阳(alexdany@126.com)
	 * @date 2014年5月7日
	 */
	public function __construct() {
		
	}
	
	/**
	 * 构造函数
	 * @author 刘阳(alexdany@126.com)
	 * @date 2014年5月7日
	 */
	public function __destruct() {
		unset($this->url);
		unset($this->maxCnt);
		unset($this->charCnt);
		unset($this->encoding);
		unset($this->username);
		unset($this->pwd);
	}
	
	
	/**
	 * 主程序
	 * @author 刘阳(alexdany@126.com)
	 * @date 2014年5月7日
	 * @param string|array $phones - 发送号码
	 * @param string $content - 发送内容
	 * @return boolean
	 */
	public function main($phones,$content) {
		// 参数验证
		if (!$phones || !$content) {
			return false;
		}
		
		// 处理参数
		if (is_array($phones)) {
			$phoneArr = $phones;
		}else{
			$phoneArr = explode(',', $phones);
		}
		$count = count($phoneArr);
		$maxCnt = $this->maxCnt;
		if ($count > $maxCnt) {
			$phoneArr = array_slice($phoneArr, 0,$maxCnt);
		}
		$strPhone = implode(',', $phoneArr);
		
		// 按内容长短来发发送
		$encoding = $this->encoding;
		$contentLen = mb_strlen($content,$encoding);
		$charCnt = $this->charCnt;
		// if ($contentLen < $charCnt) {// 短信内容少于限额，直接发送
		// 	$this->send($strPhone,$content);
		// }else{// 短信内容越长，分次发送
		// 	$times = ceil($contentLen / $charCnt);
		// 	for ($i = 0; $i < $times; $i++) {
		// 		$start = $i * $charCnt;
		// 		$newContent = mb_substr($content, $start,$charCnt,$encoding);
		// 		$this->send($strPhone, $content);
		// 	}
		// }
		$this->send($strPhone,$content);
	}
	
	
	/**
	 * 发送短信程序
	 * @author 刘阳(alexdany@126.com)
	 * @date 2014年5月7日
	 * @param string $phone - 发送号码
	 * @param string $content - 短信内容
	 * @return
	 */
	private function send($phone,$content) {
		header("Content-type: text/html; charset=UTF-8");
		// 组织数据
		$content=iconv("UTF-8", "ISO-8859-1", urlencode($content));
		$request = "sname=".$this->username."&spwd=".$this->pwd."&scorpid=".$this->scode."&sphones=".$phone."&smsg=".$content;
		//echo $request;die();
		$url = $this->url;
		$curl = curl_init($url);
		curl_setopt($curl, CURLOPT_HEADER, 0);
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($curl, CURLOPT_POST, 1);
		curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
		$result = curl_exec($curl);// 0,success，只要判断success就可以了
                echo $result;
		curl_close($curl);
	}
}
